  package com.llw.bledemo.utils;

import android.graphics.Color;

import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;

import java.util.ArrayList;

public class LineChartUtils {

    private ArrayList list1 = new ArrayList<>(); //数据集合

    private ArrayList list2 = new ArrayList<>(); //数据集合


    LineChart lineChart;


    private LineDataSet set1;

    private LineDataSet set2;

    public LineChartUtils(String s1,String s2,ArrayList list1, ArrayList list2 ,LineChart lineChart) {

        this.list1=list1;

        this.list2=list2;

        this.lineChart=lineChart;

        setData(s1,s2,list1,list2);

    }

    public void setData(String s1,String s2,ArrayList list1,ArrayList list2) {

        XwangGe();

        set1 = new LineDataSet(list1, s1);

        setLine(set1);

        set2 = new LineDataSet(list2, s2);

        setLine2(set2);


//创建一个数据集

        ArrayList dataSets=new ArrayList<>();


        dataSets.add(set1);

        dataSets.add(set2);

        LineData data = new LineData(dataSets);

//设置数据

        lineChart.setData(data);

//隐藏图表右下角显示内容

        Description description = new Description();

        description.setEnabled(false);

        lineChart.setDescription(description);

    }

    private void setLine(LineDataSet set) {

//设置线条的颜色

        set.setColor(Color.parseColor("#D4716E"));

//虚线模式下绘制直线

//set.enableDashedLine(20f, 5f, 0f);

//点击后高亮线的显示颜色

//set.enableDashedHighlightLine(50f, 15f, 0f);

//设置数据小圆点的颜色

        set.setCircleColor(Color.parseColor("#D4716E"));

//设置圆点是否有空心

        set.setDrawCircles(true);

//设置线条的宽度，最大10f,最小0.2f

        set.setLineWidth(1f);

//设置小圆点的半径，最小1f，默认4f

        set.setCircleRadius(2f);

//设置是否显示小圆点

        set.setDrawCircles(true);

//设置字体颜色

        set.setValueTextColor(Color.parseColor("#D4716E"));

//设置折线为圆滑折线(加在上面的setLine方法里)

//set.setMode(LineDataSet.Mode.CUBIC_BEZIER);

//设置字体大小

        set.setValueTextSize(10f);

        set.setFillColor(Color.parseColor("#D4716E"));

//设置是否填充

        set.setDrawFilled(true);

    }

    private void setLine2(LineDataSet set) {

//设置线条的颜色

        set.setColor(Color.parseColor("#6D7C87"));

//虚线模式下绘制直线

//set.enableDashedLine(20f, 5f, 0f);

//点击后高亮线的显示颜色

//set.enableDashedHighlightLine(50f, 15f, 0f);

//设置折线为圆滑折线(加在上面的setLine方法里)

//set.setMode(LineDataSet.Mode.CUBIC_BEZIER);

//设置数据小圆点的颜色

        set.setCircleColor(Color.parseColor("#6D7C87"));

//设置圆点是否有空心

        set.setDrawCircles(true);

//设置线条的宽度，最大10f,最小0.2f

        set.setLineWidth(1f);

//设置小圆点的半径，最小1f，默认4f

        set.setCircleRadius(2f);

//设置是否显示小圆点

        set.setDrawCircles(true);

//设置字体颜色

        set.setValueTextColor(Color.parseColor("#6D7C87"));

//设置字体大小

        set.setValueTextSize(10f);

//设置是否填充

        set.setDrawFilled(true);

    }

    private void setLine3(LineDataSet set) {

//设置线条的颜色

        set.setColor(Color.parseColor("#90BCC2"));

//虚线模式下绘制直线

//set.enableDashedLine(20f, 5f, 0f);

//点击后高亮线的显示颜色

//set.enableDashedHighlightLine(50f, 15f, 0f);

//设置折线为圆滑折线(加在上面的setLine方法里)

//set.setMode(LineDataSet.Mode.CUBIC_BEZIER);

//设置数据小圆点的颜色

        set.setCircleColor(Color.parseColor("#90BCC2"));

//设置圆点是否有空心

        set.setDrawCircles(true);

//设置线条的宽度，最大10f,最小0.2f

        set.setLineWidth(1f);

//设置小圆点的半径，最小1f，默认4f

        set.setCircleRadius(2f);

//设置是否显示小圆点

        set.setDrawCircles(true);

//设置字体颜色

        set.setValueTextColor(Color.parseColor("#90BCC2"));

//设置字体大小

        set.setValueTextSize(10f);

//设置是否填充

        set.setDrawFilled(true);

    }

    private void XwangGe(){

//设置x轴网格线

        XAxis xAxis=lineChart.getXAxis();

//以虚线模式画网格线

        xAxis.enableGridDashedLine(10f,10f,0f);

//设置x轴最大值

        xAxis.setAxisMaximum(200f);

//设置x轴最小值

        xAxis.setAxisMinimum(0f);

//撤销设置的最大值，让轴自动计算

        xAxis.resetAxisMaximum();

//撤销设置的最小值，让轴自动计算

        xAxis.resetAxisMinimum();

// //设置x轴标签数，默认为6个

        xAxis.setLabelCount(10);

// //设置x轴标签数，若强制启用true，可能导致轴上的数字不均匀

// xAxis.setLabelCount(10,true);

//设置x轴之间的最小间隔。用于在图表放大后标签不至于重合

        xAxis.setGranularity(1f);

//设置x轴轴线的宽度

        xAxis.setAxisLineWidth(1f);

//设置轴线的颜色

        xAxis.setAxisLineColor(Color.parseColor("#7F7575"));

//设置x轴显示位置在底部

        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

    }

}